package com.eps.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author Diana
 */
@Entity
@Table(name = "suministroEmpresa")
@org.hibernate.annotations.Proxy(lazy=false)
@NamedQueries({
    @NamedQuery(name = "SuministroEmpresa.findAll", query = "SELECT s FROM SuministroEmpresa s"),
    @NamedQuery(name = "SuministroEmpresa.findByIdEmpresa", query = "SELECT s FROM SuministroEmpresa s WHERE s.suministroEmpresaPK.idEmpresa = :idEmpresa"),
    @NamedQuery(name = "SuministroEmpresa.findByIdSuministro", query = "SELECT s FROM SuministroEmpresa s WHERE s.suministroEmpresaPK.idSuministro = :idSuministro"),
    @NamedQuery(name = "SuministroEmpresa.findByStock", query = "SELECT s FROM SuministroEmpresa s WHERE s.stock = :stock"),
    @NamedQuery(name = "SuministroEmpresa.findByPrecioPromedio", query = "SELECT s FROM SuministroEmpresa s WHERE s.precioPromedio = :precioPromedio"),
    @NamedQuery(name = "SuministroEmpresa.findByValorTotal", query = "SELECT s FROM SuministroEmpresa s WHERE s.valorTotal = :valorTotal")})
public class SuministroEmpresa implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected SuministroEmpresaPK suministroEmpresaPK;
    @Column(name = "stock")
    private BigDecimal stock;
    @Column(name = "precioPromedio")
    private BigDecimal precioPromedio;
    @Column(name = "valorTotal")
    private BigDecimal valorTotal;
    @JoinColumn(name = "id_empresa", referencedColumnName = "id_empresa", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Empresa empresa;
    @JoinColumn(name = "id_suministro", referencedColumnName = "ID_Suministro", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Suministros suministros;

    public SuministroEmpresa() {
    }

    public SuministroEmpresa(SuministroEmpresaPK suministroEmpresaPK) {
        this.suministroEmpresaPK = suministroEmpresaPK;
    }

    public SuministroEmpresa(String idEmpresa, String idSuministro) {
        this.suministroEmpresaPK = new SuministroEmpresaPK(idEmpresa, idSuministro);
    }

    public SuministroEmpresaPK getSuministroEmpresaPK() {
        return suministroEmpresaPK;
    }

    public void setSuministroEmpresaPK(SuministroEmpresaPK suministroEmpresaPK) {
        this.suministroEmpresaPK = suministroEmpresaPK;
    }

    public BigDecimal getStock() {
        return stock;
    }

    public void setStock(BigDecimal stock) {
        this.stock = stock;
    }

    public BigDecimal getPrecioPromedio() {
        return precioPromedio;
    }

    public void setPrecioPromedio(BigDecimal precioPromedio) {
        this.precioPromedio = precioPromedio;
    }

    public BigDecimal getValorTotal() {
        return valorTotal;
    }

    public void setValorTotal(BigDecimal valorTotal) {
        this.valorTotal = valorTotal;
    }

    public Empresa getEmpresa() {
        return empresa;
    }

    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }

    public Suministros getSuministros() {
        return suministros;
    }

    public void setSuministros(Suministros suministros) {
        this.suministros = suministros;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (suministroEmpresaPK != null ? suministroEmpresaPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        if (!(object instanceof SuministroEmpresa)) {
            return false;
        }
        SuministroEmpresa other = (SuministroEmpresa) object;
        if ((this.suministroEmpresaPK == null && other.suministroEmpresaPK != null) || (this.suministroEmpresaPK != null && !this.suministroEmpresaPK.equals(other.suministroEmpresaPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.SuministroEmpresa[suministroEmpresaPK=" + suministroEmpresaPK + "]";
    }

}
